/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package factory;

import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.geom.Rectangle;
import org.newdawn.slick.state.StateBasedGame;

/**
 *
 * @author wida46984148
 */
public class NauBase extends Entity {

    float vida;
    float vidaT;
    Shoot shoot;
    Image nau;
    Image nauDestroy;

    public NauBase(float vida, float vidaT, Shoot shoot, Image nau, Image nauDestroy) {
        this.vida = vida;
        this.vidaT = vidaT;
        this.shoot = shoot;
        this.nau = nau;
        this.nauDestroy = nauDestroy;
    }

    /**
     * Canvia la posicio de la unitat
     * @param x
     * @param y
     */
    public void setLocation(float x, float y) {
        super.posX = x;
        super.posY = y;
        super.shape = new Rectangle(posX, posY, nau.getWidth(), nau.getHeight());
        shoot.setLocation(posX , posY);
    }

    /**
     * Renderitza la unitat
     * @param gc
     * @param g
     */
    public void render(GameContainer gc, Graphics g) {
    }
//
    /**
     * Renderitza la nauDestroy de la unitat
     * @param gc
     * @param g
     */
    public void rendernauDestroy(GameContainer gc, Graphics g) {

    }
//
//    /**
//     * Metode que especifica si s'ha de reproduïr el so de la nauDestroy de la unitat o no
//     * @return
//     */
//    public boolean efectuarSonauDestroy() {
//        if (destroy && nauDestroy != null && !nauDestroy.isStopped() && sonauDestroy) {
//            nauDestroy = false;
//            return true;
//        }
//        return false;
//    }
//
//    /**
//     * Metode per no efectuar el so de la nauDestroy de la unitat
//     */
//    public void noEfectuarSonauDestroy() {
//        sonauDestroy = false;
//    }
//
//    /**
//     * Getter nauDestroy
//     * @return nauDestroy
//     */
//    @Override
//    public boolean isnauDestroy() {
//        if (nauDestroy != null) {
//            if (nauDestroy && nauDestroy.isStopped()) {
//                return true;
//            }
//        } else {
//            if (destroy) {
//                return true;
//            }
//        }
//        return false;
//    }

    /**
     * Metode que genera un impacte sobre la unitat
     * @param dany
     */
    public void impacte(float dany) {
        if (vida > 0.0) {
            vida -= dany;
        }
        if (vida <= 0.0) {
            destroy = true;
        }
    }

//
//    public void renderVidas(GameContainer gc, Graphics g) {
//    }


    /**
     * Getter Animation
     * @return animation
     */
    public Image getNau() {
        return nau;
    }

    /**
     * Setter animation
     * @param animation
     */
    public void setNau(Image nau) {
        this.nau = nau;
    }

    /**
     * Getter vida
     * @return vida
     */
    public float getVida() {
        return vida;
    }

    /**
     * Setter vida
     * @param vida
     */
    public void setVida(float vida) {
        this.vida = vida;
    }

    /**
     * Getter vidaT
     * @return
     */
    public float getvidaT() {
        return vidaT;
    }

    /**
     * Setter vudaTotal
     * @param vidaT
     */
    public void setvidaT(float vidaT) {
        this.vidaT = vidaT;
    }
    
    public Shoot getShoot() {
        return shoot.cloneShoot();
    }

    @Override
    public void update(GameContainer gc, StateBasedGame sb, int delta) {
    }

}
